package com.top.up.core.enums;

import lombok.Getter;

import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

public enum HttpEnum {

    OK(0, "请求成功"),
    ERROR(-1, "系统繁忙，请稍候再试"),

    CODE_40029(40029, "code 无效"),
    CODE_45011(45011, "频率限制，每个用户每分钟100次"),

    // 订阅消息
    CODE_40003(40003, "touser字段openid为空或者不正确"),
    CODE_40037(40037, "订阅模板id为空不正确"),
    CODE_43101(43101, "用户拒绝接受消息，如果用户之前曾经订阅过，则表示用户取消了订阅关系"),
    CODE_47003(47003, "模板参数不准确，可能为空或者不满足规则，errmsg会提示具体是哪个字段出错"),
    CODE_41030(41030, "page路径不正确，需要保证在现网版本小程序中存在，与app.json保持一致"),

    ;

    @Getter
    private int code;

    @Getter
    private String msg;

    HttpEnum(int code, String msg){
        this.code = code;
        this.msg = msg;
    }

    private static Map<Integer, HttpEnum> enumMap = new HashMap<>();

    static {
        HttpEnum[] enums = HttpEnum.values();
        for(HttpEnum e : enums){
            enumMap.put(e.getCode(), e);
        }
    }

    public static HttpEnum get(int code){
        HttpEnum httpEnum = enumMap.get(code);
        if(Objects.isNull(httpEnum)){
            return HttpEnum.ERROR;
        }
        return httpEnum;
    }
}
